package bootstrap

import (
	"go.uber.org/zap"
	"learn/config"
	"learn/pkg/logger"
	"learn/pkg/pkgCron"
)

func CronStart() {

	list := config.ReginCronStruct
	specList := config.ReginCronStructSpec
	spec()
	var id int
	var err error
	for i, v := range list {
		if specList[i] != "" {
			id, err = pkgCron.AddFunc(specList[i], v)
			logger.Debug("cron start", zap.Int("id", id), zap.Error(err))
		} else {
			logger.Debug("cron start err", zap.String(i, "不存在对应的规则"))
		}

	}
	pkgCron.Start()

}

func spec() {
	// 数据库存贮
	/**
	* 规则 分 时 日 月 周  * * * * *  linux cron 规则
	@every 1s  1 秒 一次  1m2s 1分2秒 一次
	@yearly:也可以写作@annually,表示每年第一天的0点。等价于0g11*;
	@mon thly:表示每月第一天的0点。等价于001**；
	@week1y：表示每周第一天的0点，注意第一天为周日，即周六结束，周日开始的那个0点。等价于00**0；
	@daily:也可以写作@midnight,表示每天0点。等价于00***：
	@hour1y：表示每小时的开始。等价于0****

	默认当前时区  CRON_TZ=Asia/Tokyo 0 6 * * ? 设置时区
	*/
	config.ReginCronStructSpec["www"] = "@every 1s"
	config.ReginCronStructSpec["www1"] = "@every 10s"
}
